/// 求指定值范围内，所有奇数的斐波那契数字之和
///
/// # 参数
/// - `threshold`: 指定的阈值
///
/// # 返回
/// 返回指定值范围内，所有奇数的斐波那契数字之和
pub fn odd_fibnacci_sum(threshold: u32) -> u32 {
    // 初始化斐波那契数列的前两个数
    let mut a = 0;
    let mut b = 1;
    // 用于存储奇数斐波那契数的总和
    let mut sum = 0;

    // 生成斐波那契数，直到当前数小于指定阈值
    while a < threshold {
        // 检查当前斐波那契数是否为奇数
        if a % 2 != 0 {
            sum += a; // 如果是奇数，加入总和
        }
        // 生成下一个斐波那契数
        let next = a + b;
        a = b; // 更新 a 为下一个数
        b = next; // 更新 b 为下一个数
    }

    sum // 返回奇数斐波那契数的总和
}

// 注意到模板函数的返回值是 `u32` 类型，所以不需要考虑溢出问题